libgdx's own Intersector doesn't seem to behave in *exactly* the same manner apparently. not going to spend any time with this since I already ported my own code to do the exact same thing anyway and it does behave how we want it to.