how does material noise node work?

When you apply a noise node to a material, the stretching around poles for spheres seems to vanish (ie. the noise node seems to ignore the UV channel altogether?)

I suppose this is because 3d noise is being generated, but this is a mere guess and I hope someone can clarify matters a bit.

I’m looking for an alternative method to generate this data, as the noise node is unsupported for mobile (native support would obviously be ideal here). Its possible to render a dynamic 2d texture from a 2d noise function during runtime through blueprint/c++ and pass that as a texture2d on to a material, but you’d still get stretching at the sphere’s poles, as would happen when simply using a pre-generated 2d noise texture.

So technically, is it possible to render 3d noise for a sphere, (ie. by looping through vertices?) and then pass this 3d texture/mask on to a material for masking and coloring purposes etc. without distortion at the poles, as you would do with a (dynamically generated) texture2d? I suppose a Texture2D object wouldnt suffice in this particular scenario.

Any help/advice/answers appreciated, thanks!