Sakurai however said it contains 39 characters well after the game was released. Classic Mode fully supports this by having 39 character Trophies and then having one for Pokemon Trainer. So in-game, there's even 39 playable characters directly.
And for cripes' sake, Lucario did not replace Mewtwo. Mewtwo nearly got in. Lucario(new, popular, relevant) just had higher priority as did Jigglypuff(original 12). The only actual official replacement was Toon Link for Young Link, and that's it. Roy, Dr. Mario, and Mewtwo all had data as is. Pichu was removed and never among the player data ever, so he is arguably replaced by someone. I'd argue Lucario since he's pretty much in the same position anyway. New, relevant, popular, just like Pichu was at the time of Melee. Also, had a movie appearance. Key difference is Lucario was actually unique, where Pichu was a clone.
Charizard has two as well. Otherwise, agreed with everything else you said.