Object Adoption is the process of eliminating a parent object and having a new object load into the parent’s object slot. By doing this, the loaded object is considered the new parent object and can “adopt” the original child object. This has a few interesting applications.
Spiny Adoption occurs when Spiny’s parent object, Lakitu, is killed and another object loads into Lakitu’s slot. The Lakitu object contains an attribute stored in object field 0x1B which keeps track of the number of Spinies currently alive. If another object is spawned into Lakitu’s slot, and then the Spiny is killed, it will decrement the new object’s attribute at 0x1B. There are currently two places in the vanilla game where interesting results can occur from this. In Tiny-Huge Island, there is a Lakitu located near a group of 3 Giant Goombas loaded by a triplet spawner. By performing the adoption on one of these Goombas and despawning the Spiny, the Goomba will take on the size value of 0, that of a regular Goomba. This means the Goomba can be killed with a punch, unlike regular giant Goombas. In Rainbow Ride, if the adoption is done on a Bob-omb respawner, the Bob-omb will respawn with a different model than before. In theory a maximum of 3 decrements of the value are possible, giving a Butterfly, a fish with a shadow, or a fish without a shadow as the Bob-omb's model.
Pupil Adoption occurs when the Mr. I Pupil’s parent object, Mr. I, is killed and another object loads in its slot before the Pupil updates. Since the pupil considers the new object its parent and is programmed to stay out in front of its parent, the pupil will stay out in front of the new object.