Well actually at this point neither can help you without changing the core.
1. IMC - this is ok, but you need to have code on both sides to support it, e.g. - registration must bring up an event on your module for your module to react. That part with registration bringing up an event is up to you to add.
2. EventQueue - this is the way to go definetly, but unfortunatly registration event have not been registered yet in the queue for you to use. What you could do here is try to mimic the current events which are set in the queue and add the ones which you need for registration.
HTH