Will it work for Macs?
Yep, it'll work for all platforms. Someone will need to compile it for me though, I don't have a Mac.
How will you handle triangles? Choose a random vertex in the triangle and dupe it to for a fake quad?
For each triangle, loop through and find a triangle that is directly opposite, otherwise skip it. Detriangulation breaks sometimes, so you're better off using quads. The units will be 1 1 1 for a 1 1 2 brick (2 flats high - ie exact cube size)
Unfortunately the library I'm using only supports importing, so I can't make the opposite with all the formats.