You can't fully build a custom Pokémon without ROM hacking.
Actually, you may be able to, but you'd need to use some very heavy game logic manipulation (using, I guess, DMA hijacking) to make a custom cry, custom sprite, custom learnset, etc.
Also, it would be very difficult to do especially because some attacks, such as Substitute, fully reload the sprite.
- In theory it's possible
- No one will ever have the dedication to complete such a tremendous work
- I might be wrong but I bet I'm not
(TAS-level ACE would be able to also do such a thing, but I guess that's out of TheUnReturned's scope)