Usually when I work with photogrammetry or in other usages, I need to combine two meshes that have different position, rotation and sometime even scale.
The best way to solve this problem is by selecting 3 points that are present in both model.
Using 1 point : have the correct location of the model in 1D
Using 2 point : have the correct location and rotation and scale in 2D
Using 3 point : have the correct location and rotation in 3D (scale is usually consistent and done in with two point)
Here is a GIF example of my method.
As you can see, I use an edge that I extrude in X direction, apply to rotate to my control point, and parent it to my object to have the 3rd axe of movement (locked between the two points a damp track can be used if you want make sure it stay connected to the two first point control) using object local rotation.
I don't think it's the best method, do you know if there is another way to do it faster and easier ?
Edit : I took the example with monkey as it was easy to understand, but I often need to merge transforms of more complex mesh like for example in photogrammetry. I already work with this 3 point method, it's just I think it's a long and fastidious process, and if there is already an addon, or a tool in blender that allow to make the 3D cursor rotation perpendicular to the line between point 1 and point 2, this would make things easier.