Object adoption
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
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 is exactly one place in the vanilla game where this can be applied. 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.
Pupil Adoption
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.
References