mmh…
When you repeat the texture on one face and use the same texture on another face (with a different crop area with faceUV), the texture is stretched on the whole surface.
Actually, this is the expected behavior : a texture is stretched (whatever the repetition number) on the whole surface of a face.
So, unless you add some vectors on one face (please search the forum, someone solved the same issue a month ago in my memory) so they can hold some extra UV coordinates (this means a different mesh geometry finally), you could :
either use the MultiMaterial feature with two different textures (different scales) from the same image, but this would be a draw call per texture,
either still use faceUV but by modifying your initial image : put in the same image both scale versions (the stones and twice the stones twice tinyer) with your favorite picture editor, then use faceUV to crop the right texture part and to stick it on the right mesh face.
I would do the second option as it’s easy, light and will be only one draw call.
Can be, but the use of Multimaterial+subMeshes is what i need to do for my project (a map editor for my game) and is very close to what i was doing with ThreeJS.