So I didn't have much luck trying to change this code either, but it's ok, I don't want to keep trying or filling this thread with posts related to this. I just wanted to point out that the mpc-be code is wrong, the changes you made fixed it, but it still produces a half pixel shift to the left (same as the xbmc code but in the opposite direction), you can fix it like this:
Code:
float coord = (tex.x - p1.x)*0.5*p0.x;
Other than this, the performance of the mpc-be shader is only slightly worse than the other implementations.