Got up really early today. After checking my mail, I realized that Paolo and Zoltan had a really good idea how to solve these problems with mini. Hacked the whole day on it and finally got it working.
Instead of dealing with MONO_TYPE_VAR and MONO_TYPE_MVAR in mini, we just JIT the method for each instantiation. This creates some overhead since we're creating duplicate machine code for each instantiation, but removes a lot of complexity, so it's just the best and easiest approach for the moment.
Also added two new tests to mcs/tests/ - all tests except gen-12 and gen-21 should now succeed.