Here's the math. I incorporated it into this spreadsheet here:
http://dropcanvas.com/ecs9l
I presented it in a video here, but without going into too much detail about the math used:
Take the geocentric equatorial coordinates of the moon and add .25 degrees to declination (approximate radius of the moon). This will give you the equatorial coordinates of both the center point of the moon and the north point of the moon on the equatorial grid. Then calculate the position angle of the moon's bright limb relative to the north equatorial point. This is given by the following equation:
X = arctan((cos(declination of the sun)*Sin(right ascension of the sun - right ascension of the moon))/(cos(declination of the moon)*sin(declination of the sun)-sin(declination of the moon)*cos(declination of the sun)*cos(right ascension of the sun - right ascension of the moon)))
Then to calculate for field rotation, convert the geocentric equatorial coordinates of both the center point and the north point to horizon coordinates. This is given by the following formulae. For azimuth, the formula is:
tan(az)=(-sin(Hour angle in degrees +delta)*cos(declination))/(sin(declination)*cos(latitude)-cosnope(declination)*sin(latitude)*cos(hour angle in degrees+delta))
where delta is:
tan(delta)=(p*cos(theta')*sin(hour angle in degrees))/((distance of moon in km/6378.14)*cos(declination)-p*cos(theta')*cos(hour angle in degrees))
For altitude the formula is:
sin(altitude)=(sin(declination)*sin(latitude))/(cos(declination)*cos(latitude)*cos(hour angle in degrees))
Now once you have converted both the center point and north point to altitude and azimuth, take the difference of each (altitude and azimuth) between the north and center points to find delta alt and delta az. From there, calculate the angle of the line from the center point to north point relative to the horizon:
arctan(delta alt/delta az)
Then add the position angle of the moon (X). In order to express the resulting orientation angle of the moon relative to the horizon as I have in my spreadsheet (as an angle expressed as degrees from vertical from 0 to 90 degrees) follow these directions:
angle1 = arctan(delta alt/delta az)
If angle1 > 360, then take angle-360 = angle2, otherwise angle1 = angle2.
If angle2 >90 and less than or equal to 180, then take (90-angle2)+90 = angle3, otherwise angle2 = angle3.
If angle2 = angle3 and angle2 > 180 and less than or equal to 270, then take the absolute value of (180-angle2) = angle4, otherwise angle3 = angle4.
Finally, if angle4 = angle2 and angle 2 > 270, then take (90-(angle2-180)+90) = angle5, otherwise angle4 = angle5. Angle5 is the final answer and the apparent orientation of the moon relative to the horizon expressed as the angle from 0 to +90 degrees from vertical.
Hope this helps.