This design is parametric to fit whatever mirror/screw size you want. See the link for the code below.
The included OBJ is for when I mounted a 3x5' mirror vertically on a rough cinder block surface. So, I used a total of six clips to support the weight, keep it in place, and stop it from vibrating when weights get dropped. Two on each the top and bottom (about 3" from the ends), and then one on each side (right in the middle). The clips include a slight standoff to make up for the the shit mortar job, which sticks out beyond the wall up to 1/4" in some places.
Prior to a remodling, I had a similar mirror which was mounted on plywood (for the standoff) screwed into the block, then held in with the standard chintzy clear plastic clips. It would rattle all the time though, so I ended up shiming it with newspaper to remove the vibrations. Janky as fuck. That mirror broke when taking it out of the gym (Fuck! 7 years bad gains!), so as long as I was redoing it, I was going to redo it right.
Nearly two years later, I'm finally getting around to publishing the files. And tbh, my gains have been pretty shit. Hah.
My notes say I printed this with support, 50% infill, and a slightly thicker wall thickness (5 layers, because the plastic is cheap and the mirror wasn't, so better safe than sorry). Has held up great, and no vibrations whatsoever.
If you're curious, this is the mirror. I have no idea why Home Depot put it in the "bath" section. It clearly belongs in the gym.
This object was parametrically designed using Python, FreeCAD, and CadQuery, so the code and yet more documentation is available here.
Here's a perma-link to the code that made these files specifically. There may have been updates/improvements/reorganizing done since then, however, so I suggest you take a look at the latest revisions too.
Pretty much any design on the git project should be on my Thingiverse profile as well. Some (but not all) of my designs also have videos to go with them, which I am assembling into a YouTube playlist here.