Notably missing from this structure are the Pokémon's nickname and the original Trainer's name, which are stored elsewhere.

Pokémon stored in Bill's PC use a form of this structure that stops after the level data, at 0x1F.

The Pokémon Box data consists only of the currently open Pokémon Box, which explains the need for the player to save the game before switching the open Box. The current Box is represented in volatile RAM at a given offset depending on which version is being used, and continues for 640 bytes (32 bytes each for 20 Pokémon).

Differences

The Generation I Pokémon data structure initially had 44 bytes—33 "core bytes" and 11 "temporary bytes" when withdrawn from the PC. In Generation II, Pokémon are now represented by 48 bytes—32 "core bytes" and 16 "temporary bytes" when withdrawn from the PC. This makes Pokémon storage in RAM slightly cleaner to access/modify than in previous Generation I games.

Removed data

The catch rate from the Generation I games is now recycled to store a Pokémon's held item. Held items can be traded between Generation I and II and will still remain in Generation I, despite being unusable. This is because non-wild Pokémon in Generation I never utilize their catch rate data.

Six values between offsets 0x01~0x06 from the Generation I structure have been rearranged, with values from offset 0x07 onwards now taking the place of 0x02 onwards.

Remaining HP (2 bytes) is now two "temporary bytes", which explains why a Pokémon's HP is restored when deposited/withdrawn in Generation II, unlike in Generation I.

The redundant level value from Generation I is now gone, as a "permanent byte" value is now used to store a Pokémon's level while in the PC.

Status condition is also a "temporary byte", as opposed to previously being a "permanent byte", in the same fashion as Remaining HP.

A Pokémon's given types (2 bytes) are now removed from its individual data. Instead, in Generation II, a database is used to calculate a Pokémon's type when it gets sent into battle.

Additional data

Friendship has now been added right after move 4's PP byte. This value disappears from a Pokémon when traded to Generation I. However, Pokémon traded to any Generation II game will be assigned a default friendship value.

Pokérus has also been added right after friendship. Like friendship, this value disappears when traded to Generation I. As such, it is possible to "erase" Pokérus by trading the infected Pokémon between a Generation I game and a Generation II game, as long as it is "compatible" with Generation I.

At the very end of the "temporary bytes", Special has now been split up into Special Attack and Special Defense. Both stats utilize the same EV and IV values. However, they are assigned different numbers from the species' given database entry.

Notes

IV data

The Pokémon's individual values are stored packed into two bytes, with 4 bits for each IV. From most to least significant, they're stored in the following order: Attack, Defense, Speed, and Special.

Caught data

The caught data is only used for Crystal version in Cianwood City where a woman tells the main character where a certain Pokémon was caught and at what time and level. Pokémon obtained in a game other than Crystal will have 00 00 for this value. This data is stored in two bytes:

When traded to Generation I games, Pokémon from Crystal version will lose their caught data permanently. They will not recover this data when traded back. However, this data is retained when the Pokémon is traded amongst Generation II games.