I have never heard of 3D, 3-Axis or 5-Axis tool compensation using G41/G42...
Going back to the early 80's Fanuc 3 and 5, Cincinatti Acramatic and GE550 and 1050 series controllers, every machine that I have ever worked on had 2 axis toolpath compensation, though some were very complicated to use.
How would 3D tool comp work if I was using something like a 1" (25mm) bullnose cutter, with a .125" (3mm) radius, cutting accross a series of 3D surfaces. I am not sure how the controller would know if the corner radius or the flutes of the cutter were contacting the part surface. Even using a ballnose cutter it would be impossible to know where the ball was contacting up onto surfaces as the contact point would change constantly.
I can't even imagine how 5-Axis tool motion can be compensated. It would be nearly impossible to do 3D or 5-Axis comp, without being able to know what the entire surface looked like the way a programming system knows and calculates centerline files applied to the entire surface.
You didn't say what CNC machine or controller you are using, maybe I have missed something these last 30 years...?