The basics are pretty easy to learn, but it gives you a good amount of power. It also allows you to easily define custom versions so you can just slap
use My::Custom::Moose; (or role) at the top or your code and it works just fine.
You can now disable just about any features in it you don't want. You can also include experimental features, such as multimethods (based on number of args) and async/await.
Check out the github repo if you'd like to contribute.