M files are not actually in the SLC, they are in a "smart card".
M0 files can be thought of as output files that can have their data written by the SLC.
M1 files can be described as input files that can have their data read by the SLC.
Accessing these files or any bits and pieces of them efficiently, requires that you use COP or MOV instructions to move the values between the M files in the smart cards and the SLC data tables where they can be more easily referenced.
It is possible to reference individual M bits and words, but each time the SLC encounters an M reference, it must query the smart card for the data and wait for it. It can kill scan time. This is why you will almost always see them copied en masse.
This is the nutshell version in my own words, hopefully, I said it right.
Paul