MI still sends shivers down my spine, having spent time in the C++. Just say no.
If client-side JavaScript had this design, there would be no need for the DOM to have a special event mechanism that lives outside of method handling: DOM elements would simply have method handlers and the dispatch system would handle prototype and container inheritance.
See also HyperCard/HyperTalk...
However Eiffel, OCaml and Python MI implementations seem to be implemented in a more sane way.