Facet Rotation and Normal Direction in Euler World Space

You should check this post: How can I make a mesh sit on the surface of another mesh?

It is providing the solution to exactly what you are trying to achieve with the associated code