The scale of a texture is generally controlled by the UV.
If you got a square surface of a mesh then you have 4 corners where you set those UV coordinates which are actually texture x/y coordinates. Values/Factors from 0 to 1 are used to be scalable independent of the actual texture size.
So you can i.e. set the UV from the upper left corner to 0,0 and the UV from the lower right corner to 1.0, 1.0. Then the texture covers exactly the square. But if you set the lower right corner to 2.0, 2.0 then the texture coordinates would go out of bounds after leaving the upper left quarter of the square. That's where the "Repeat" flag (set when importing a texture) comes into play.
If repeat is enabled than the texture would just be starting again at 0 when passing 1.0. So the texture will be tiled on the surface. With UVs from 0,0 to 2,2 the texture will be repeated in 4 tiles.
Those UVs are either assigned in the 3D editor, or from code if you create a mesh/surface in i.e. GDScript.
If you use predefined meshes from Godot like i.e. the CubeMesh then the UVs are predefined from code. But you can alter them a bit in the SpatialMaterial "Uv1" settings. You can alter the Scale (usually x/y) and let therefore let your rocks appear smaller or larger. Offsets will move the location of the origin inside the texture.
On meshes with a splatmap shader the UVs of the Mesh will typically index the splatmap which is the lookup index which decides which texture to use on a certain "location".
So for example the terrain mesh is i.e. 1km x 1km big and the UVs are mapped from 0,0 from one corner to 1,1 on the other corner. The texture may be 1024x1024 pixel large so it can roughly define a separate texture (not pixel) for each square meter. (Texture changes will be blended typically by texture lookup interpolation)
So if you define to have sand in the center of the map. You then set the pixel 512,512 of the splatmap to i.e. full red (assuming red is mapped to a sand texture). The UV of the terrain mesh on the center is (using the mapping defined above) 0.5, 0.5. This will be calculated to 0.5 * 1024 = 512. (If the texture would be 2048x2048pixel then this would address it's center pixel as well, 0.5*2048 = 1024)
Ok, so now the splatshader selects sand but how how to define how big a grain of sand is? This is typically done by assigning a scale value (in the splat shaders parameters) for each texture.
So when the UV (x and y) for 1 m² on the mesh will actually move from 0.500 to 0.501 you apply a factor to this to get the actual UVs for the sand texture. Let's say the factor is 1000 then you calculate the UVs 500 to 501 from that. As the sand texture is set to repat this would be the same as the range from 0 to 1. So with factor 1000 the sand texture is set to repeat each 1m² in this case.
I don't know how the scaling parameter exactly look like on zylanns addon. But I assume that they are there.