in reply to "Moo detecting Moose" mechanics?

Once Moose is loaded, you can do this with any Moo class:

my $class = ref($object); my $meta = $class->meta; ...; # do stuff with $meta

The Moo class will act like any other Moose class. (But it keeps its original inheritance, inheriting from Moo::Object and not Moose::Object.) It will have a metaclass that you can introspect.

Yes, this works even if Moose gets loaded later. (Moo detects Moose being loaded by performing a tie on $Moose::AUTHORITY to an object with a DESTROY method, so it notices when Moose.pm loads and sets $Moose::AUTHORITY.)