Odd, I love Mario mirrors haha.
Aside from the plain "just outsmart your foe" kind of reply, if your foe is largely grounded, I like to either poke with spaced FTilts, bait a dodge with Mario's gatling jab, use fireball at a distance where a reflected one won't punish myself, or rush in with a dash grab.
In the grounded neutral, it's important to keep your options open, so I try to always walk, and never run (unless if going for said dash grab)
If the other Mario is respecting you, you may have time to shorthop DAir, and DAir is especially nice because it provides heavy shieldstun, and you can easily mix up the amount of shieldstun by autocancelling or fastfalling the DAir, since it has a landing hitbox, all while crossing up, mixing up the left/right or front/behind situation.
If you find yourself getting rushed down by the other Mario's aerials, you can try to preempt their attempted air approach with USmash or, if you need something slightly faster, your own NAir or UTilt.
I know UTilt is well known for combo fodder, but it serves suitably enough as a standalone anti-air.
Speaking of which, Mario can't really do much comboing against Mario, since he escapes his own UTilt strings with NAir, so you don't get too much easy damage off of DThrow.
It's one of the matchups where I prefer FThrow/BThrow for stage control/presence.