I know what you mean by your explanation. It is important that you and others notice and mention these things. Sometimes in the scope of frustration and such it may go unnoticed to me. This helps keep things in focus for me.

I have fiddled with different textures, texture stage changes, and am trying to digesting as much info about shaders as I can to learn what instructions I should be using and how to make them work. I was hoping that there would be some additional changes and/or versions from other users as well.

I have tried to use VEC_DIST operations based on the player-to-the-object distance to pass info to the vertex shader. For example, when near to the water the textures are scaled smaller. When the player is far away, then the textures are scaled larger. This has it's own problems of being quite noticable when the change takes place.

As a basic example, the action modified to this:
///////////////////////////////////////////
if (vec_dist(my.x, player.x) < 100)
{
my.skill43=float(5); //z
my.skill44=float(3); //w
}
if (vec_dist(my.x, player.x) > 101)
{
my.skill43=float(1); //z
my.skill44=float(1); //w
}
////////////////////////////////////////

Then the vertex shader was changed to this:
////////////////////////////////////////
// Compute texture coordinates for 1st noise texture
mul r1, r0, c11
frc r1.xy, r1
mad oT1, v7, c14.zzzz, r1.xyxy


// Time
mov r0, c41.x

// Compute texture coordinates for 2nd noise texture
mul r1, r0, c12
frc r1.xy, r1
mad oT2, v7, c15.wwww, r1.xyxy

// Time
mov r0, c41.x


// Compute texture coordinates for 3rd noise texture
mul r1, r0, c13
frc r1.xy, r1
mad oT3, v7, c14.zzzz, r1.xyxy


Good luck and thanks for any input that you have to give.

Eric