For V18:
----- When breeding Pokémon, this means that the baby will hatch fully evolved.
-----UPDATE:
I've looked into the evolution data that is actually stored; as I understand it, each Pokémon stores its previous and next evolutions in a list. That list consists of lists each having the format [Other Pokémon's ID],[Evolution Method],[Method Parameter],[Boolean whether this is a pre-evolution or not]. So, Bulbasaur's data is [2],[4],[16],[False], meaning "it evolves into Ivysaur at level 16, which is not a pre-evolution". Ivysaur's data, then, is [[1],[4],[16],[True]],[[3],[4],[32],[False]]. This means it evolves from Bulbasaur at level 16 and into Venusaur at level 32. Venusaur's data should then be [2],[4],[32],[True], but is instead empty, which is probably something that goes wrong when compiling. This means that an egg bred from an Ivysaur will correctly hatch a Bulbasaur, but an egg bred from Venusaur will hatch a Venusaur because the evolution data is empty, as it would be for a Pokémon with no evolutionary relatives (Also, returning nil instead of the empty list results in a few unexpected errors; eggs are generated correctly for Pokémon with no relatives). -----.