He's not asking about collision. The problem is that, since the reference point for commands like SPSCALE is by default (0,0) the top left corner is where the command works around. Therefore you need to change this point - that's what SPHOME does. Your sprite is a 16*16 pixel one, right? This means you should use 'SPHOME control number,8,8'.
The syntax for SPHOME is usually:
SPHOME control number, x offset, y offset
It is ideal to use (width/2) and (height/2) as the X and y offsets respectively, as this will make the center of the sprite the center for commands like SPSCALE.
Try to modify your program as follows.
1) Write "SPHOME 1,8,8" just behind "SPSET 1,502".
2) Write "IF(X MOD 16)>=4 &&(X MOD 16)<12 &&(Y MOD 16)>=4 &&(Y MOD 16)<12 THEN" instead of "IF((X MOD 16)>=12 || (X MOD 16)<4)&&((Y MOD 16)>=12 || (Y MOD 16)<4)THEN".
3) Write "BGGET(0,X,Y,1)==869" instead of "BGGET(0,X+8,Y+8,1)==869".
Ok, I'll try that when I get back from somewhere.
And your english is really good if it's not the main language you speak.
I thought you were younger because almost everyone on miiverse are kids talking about video games.