We've relied in various places on methods that Parrot's PMCs provide, but that it's not reasonable to expect a ground-up 6model runtime to offer. In general, the only things that define internal methods are the KnowHOW and KnowHOWAttribute, from which everything else is built. By keeping the MOP simpler, it means we can keep the runtime leaner and write more of NQP in NQP. This isn't the entire set of changes we need, but many of them.
It replaces a rather non-uniform mix of v-table calls, method calls and pirops. Probably there are a few more needed, but this covers the majority.
Just some assorted ones where we already have the NQP op defined.
This feature was in QAST pretty much from the start, but NQP never adopted it, since it could get away with Parrot auto-invoking the first sub as the mainline. That's not very portable, though, so now NQP uses :main(...) properly.
Exactly what this was solving seems lost in the mists of time; no NQP tests fail upon removing it, nor do any Rakudo ones. Tossing it gets rid of some odd code and some QAST::VM usages.