Quickie post because it's late and I'm tired. More work making the system convenient today. Namely, I changed EventHook from using instance_eval() with a block to initialize (setting instance variables; which was excessive and added complications about the scoping of the "self" keyword) to using a plain old Hash.
Also made the HasEventHandler mixin module which allows you to attach a hook while automatically setting the hook's "owner" to the receiver. Since 95% of hooks added to a sprite will have that sprite as the owner, not having to specify the owner explicitly is rather handy.
I think I also did some other miscellaneous stuff today, but I don't remember what. *yawns*