Works great with noise textures. You might be able to break up the stretching enough with this only, and then add the diffuse. Or you can try with this. Another thing that came to my mind: you could try adding a constant to the U/V coordinates multiplied by the normal direction, so when the surface is facing the X axis for…
Issue 1: You could use the world position as the texture coordinates and then blend between the X, Y and Z tiled textures based on the direction of the normals. For the tiling, using one color map for the whole terrain + a mask for different materials (grass, rock etc.) and then blending in the detail diffuse maps and…