I don't think that makes any sense. How could you possibly create such a circular relationship between things in any language? Besides, if I understand metaclasses at all, only other metaclasses can be bases of a metaclass. Why not use python classes to represent the other system's types with a python metaclass as the "type" type?