As an afterthought, looks like mixing `Object` and `StaticObject` will break the strict standards (i.e. Non-static method should not be called statically). Moreover Models override the default `StaticObject` filter system so here the `Mock` must extends `Model` to make it work. 

However I'm pretty sure we can find an alternative by dynamically extending the Mock from the mocked class if the mocked extends `StaticObject` or `Object`. And for other kind of class, the Mock will extends `StaticObject` or `Object` depending on "something" (something can be replaced here by a big question mark). Or maybe using two keywords `Mock|StaticMock` which indicate the type of the class ?