I wrote a GLSL shader for use in Unity3D with my pixel iOS app. He has two ONE problem:
1) The effect does not always remain with the moon, and 2) the lighting does not look pixelated.
I will explain a little. A shader is designed to create a lighting effect in the foreground when the moon is behind it. I have a sprite that usually appears as black (as a silhouette), but when the moon's object is close enough to it, it shows the details of the texture, for example:

The actual sprite (without a shader) looks something like this:

The reason I make the effect this way is because I can have a light map with only one texture. However, there are two problems:
1) When I get closer to the edge of the screen, the light effect doesn't exactly follow the moon. I'm not sure if this is due to the misuse of the variable TEXCOORD1. I created a sprite that spans the entire screen so you can see how it does not follow the moon. Here is a picture of the problem on my test scene for the effect. There is a full-screen sprite with black bars and alpha to show where exactly the effect is always. I want to get rid of this desync because it makes the lighting unrealistic.

2) The lighting effect is very sharp - it would seem that it would be better if each pixel burned individually, as in SpriteLamp . I know that this is due to rounding the coordinates of the fragment in the shader, but since I never know that the values โโof the variables are in my shader, I can not get this to work correctly.
I can round and cover the distance, but then I get it that obeys the distance from the moon, but does not obey the pixels of the original sprite. There is pixelization, but in the end we get this strange curve on what should be only one pixel, if you understand my meaning ...

What I'm looking for is more like that. See how the individual pixels of the original texture burn?

Here is a link to the shader itself: http://pastebin.com/0zbqrP57 . This is the default shader of the only sprite shader, basically, but with some code added at the end of the SampleSpriteTexture function.
Here is a link to the unit of the package, which you can use to look at the shader in action. Just try moving the moon during the game.
https://drive.google.com/open?id=0BxCQjUHiAAQWZGpPZ3R2SExTcXc
MY QUESTION: Do you have any advice on solving these problems or solving them?