You cannot use light vector in an opaque material in a deferred renderer like UE4. You need to manually create the light vector using a blueprint. I suggest using a material parameter collection to share the value between multiple materials. With a collection param make sure you mask RGB since it will try to pass a v4 RGBA.
The “manual texture size” is not the dimensions of the textures, it is how big one 0-1 tile is in worldspace. That number is definitely wrong and that is why the intersection with the cylinder looks wrong in your animated image.