world0 to world3 is provided by Babylonjs when using instances. “Normal” on the other hand, is not needed. There are really no documentation in the internet, only source to learn was this thread; Custom Attributes for Instanced Mesh to be used with Custom Shaders
and this sandbox: https://www.babylonjs-playground.com/#G3P9LH#2