This is a keyhole, but it flies around. Why? I don't know, I'm sure people will find clever uses for it.
Similarly to my Flying ? Block, the first extra byte controls the movement pattern. The second extra byte sets different behaviors when touched by a key (end level, kill Mario, make key vanish). Additionally there's defines in the asm file to change speed/acceleration.
Works as intended with no issues found, so, accepted. A simple concept, but a rather nice sprite which could have some interesting uses.
During moderation I modified the exit/kill/disappear behaviour to use one of the extra bytes instead of a define, and expanded the .json list to include all the possible variants. I also threw in an icon graphic, because why not.