It intuitively seems to me that “a Moose object” is too much to be serializing.
Actually, your intuition is wrong, a "Moose object" is just regular old HASH reference, just like any other plain old Perl object you might create. There is no magic involved there, in fact it is pretty boring.
The only time Moose will add anything else to an instance, is if you start doing fancy stuff like applying roles to an instance, in which case it needs to keep a local reference to the metaclass and that can get ugly.