That's probably it. Maybe if I just deleted the "wait for section" command...but then I'd be screwing up Frog's other spell, heh heh.
Yeowch! "Geyser" weighs in at a mighty 0x1B4 bytes, whereas Magus' "Black Hole" is only 0x99 bytes. Looks like it's time to experiment with pointering into unused space. I could probably just copy and paste the entire Geyser code there, then have all of Black Hole's object pointers point there. Actually, if we do that, we'd probably be able to replace any spell with "Geyser" because it would essentially be a set of object pointers, right? Is there any rule that a tech can't just be a set of pointers to objects existing elsewhere?
EDIT: Oh, of course! I could just go to Black Hole's root pointer in the code pointer table and repoint it to "Geyser" code pasted into the unused space.
EDIT: Stuffed Geyser's code at 0xEDC20, near the start of a block of unused space, and repointered Black Hole's tech code pointer to that location, and it's a mess. The code seems to grab the other player characters and move them as opposed to producing the little ghosties, so the game hangs. I'll have to study the specifics of how the code itself works before attempting this again I think.
EDIT: Scratch that, it's almost working! I made a simple error by copying all seven of the Geyser graphics bytes, when I should have left the first one alone (that's the one that tells the game engine which tech code pointer to use). Something's up though, because it's pulling from the Haste clock graphics pack as opposed to the ghost graphics pack, and has the wrong palette. If I figure that out, we'll have a fully working Geyser!