How UML2 and MOF relate
I'm currently working on my diploma thesis called "Activity Model Runtime Engine for Python". This engine will be loosely based on the "UML Activity Diagram" specification using Python and Zope3 components.
A month ago I participated at a modeling sprint at BlueDynamics in Innsbruck.
Meta-Meta-Modeling
There we were discussing a generic meta modeling framework which could be used to manage models, manipulate models, validate them and so on. There is already a framework in development called cornerstone.model, but we were spinning ideas around a metamodel framework based on the ideas of the OMG, specifically a MOF[1] (Meta Object Facility) based metamodeling stack.
The MOF Specification provides basic meta-meta model elements to build meta models upon. The OMG's metamodeling vision defines 4 modeling layers, as illustrated below:

OMG's meta layers. Illustration based on [2], pg.62
The MOF is a meta-meta modeling language and sits on the the modeling layer M3. We thought (and some literature implies this) that the UML metamodel is an instance of the MOF. We discussed the idea of bootstrapping the metamodel framework out of OMG's specifications in form of XMI files (such bootstrapping is realized in some degree by the Coral framework ([3], pg. 2-3)).
However, thats not the case. We found that the UML specification is split into the "UML Infrastructure" and the "UML Superstructure" specifications. The UML infrastructure defines the meta-meta model of UML while the UML language definition (the metamodel) is defined in the superstructure. But, the superstructure contains more: the infrastructure is merged into the superstructure ([4], pg. 686) and is therefore self-contained. It defines the whole stack. See the illustration below.

Illustration of UML's meta levels
But now, what about the MOF?
In UML2 the infrastructure was aligned with the MOF2 ([4], pg. 7). MOF2 is built on a subset of the UML2 infrastructure ([5] pg. 29). Both are equivalent but not the same. UML is not really an instance of MOF but should be compatible to any MOF based toolkit.
The MOF can be used for any metamodel and is the basis for CWM (Common Warehouse Metamodel) and so on.
Attention: This can screw your head.
The UML specification and other work by the OMG are great, but we left our metamodel bootstrapping idea behind. Now I focus my work on a metamodel for activities without any formalized meta-meta model behind it. I think that this pragmatic approach is quite sufficient.
References:
[1] http://www.omg.org/mof/
[2] Stahl et al. Modellgetriebene Softwareentwicklung, 2.Auflage. dpunkt Verlag 2007
[3] Marcus Alanen and Ivan Porres. The Coral Modelling Framework. http://www.tucs.fi/publications/attachment.php?fname=inpAlPo04a.pdf
[4] Rumbaugh, Jacobson, Booch. The Unified Modeling Language Reference Manual, Second Edition. Addison-Wesley, 2005
[5] Meta Object Facility (MOF) Core Specification. http://doc.omg.org/formal/2006-01-01.pdf
The picture "Impossible Staircase" is made by Sakurambo and can be downloaded from Wikipedia.
