Spawn Reasons

ReasonDescription
When something spawns from natural means.
When an entity spawns as a jockey of another entity (mostly spider jockeys)
When a creature spawns due to chunk generation.
When a creature spawns from a spawner.
When a creature spawns from an egg.
When a creature spawns from a Spawner Egg.
When a creature spawns because of a lightning strike.
When a snowman is spawned by being built.
When an iron golem is spawned by being built.
When a wither boss is spawned by being built.
When an iron golem is spawned to defend a village.
When a zombie is spawned to invade a village.
When an animal breeds to create a child.
When a slime splits.
When an entity calls for reinforcements.
When a creature is spawned by nether portal.
When a creature is spawned by a dispenser dispensing an egg.
When a zombie infects a villager.
When a villager is cured from infection.
When an ocelot has a baby spawned along with them.
When a silverfish spawns from a block.
When an entity spawns as a mount of another entity (mostly chicken jockeys)
When an entity spawns as a trap for approaching player(s).
When a creature is spawned by plugins.
When an entity is missing a SpawnReason.

Copied from: bukkit docs - Spawn Reason