Data is now organized in hashes, so more values are optional, you don't have to remember a specific order, etc.
(You can tell when I learn something new in scripting because I suddenly start trying to use it everywhere - I did the same hashes thing with my Prize Wheels script, and I'm pretty sure so many older versions of my scripts used arrays because I had just learned to use arrays then)
Every possible trait of a Pokémon has been included. Contest stats, ribbons, Pokérus, defining specific stats/moves, items...
Each Pokémon can now have its own probability of being encountered