Multiple changes in Mirror

- Reimplemented the full_name metafunction.
- Updated/simplified the registering code.
- Added new registering code.