in reply to what format should Makefile.pl be and where is the list of attributes
Virtually all Makefile.PLs use ExtUtils::MakeMaker, except for some which are slim redirects to Build.PL in Module::Build-based distributions (which don't use makefiles).
Module::Install is just a wrapper around ExtUtils::MakeMaker. It happens to be rather a good wrapper that enables you do some useful packaging stuff automatically, like automatically create your README file from your main module's pod, automatically make you a coffee at the end of the build process, etc.
(And there's also Module::Package, which is a wrapper around Module::Install.)
package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name
In Section
Seekers of Perl Wisdom