I'm trying to create a fake point light using a empty game object to have complete control of the color and shading. I get it to work pretty well using high-poly geometry by calculating the dot product of the surface normal and the position of the empty. So this is pretty much the effect I'm trying to create.
This is for a game project, so I want to use a normal map for performance reasons, but here things break down completely. When I move the empty around the light mask fills up with a linear gradient and the "light" direction seems wrong as well.
Here's my normal map and my node setup. What am I doing wrong? Please help :)