My current node setup, the color ramp is meant to lock the input from the value node to 0.25 increments, which is used to pan the texture up and down. The texture I'm using is on the left (size is 16x64):
This is what's inside the node group. I have 2 instances of the mapping for the cube, one for the side faces, one for the top and bottom faces. they're then put through the solution I found in the above post, then finally mixed together with a factor value that separates X&Y faces from Z faces:
If parts of the cube's faces end up in the negative XYZ areas of the object's origin, it'll display a different part of the texture, which is something I don't want. I'm pretty sure this is caused by the "object" setting in the texture coordinate, but I need to keep that option so the texture becomes repeatable and is locked to the object coordinates.
So far I've tried adding a math node set to "absolute" before each of the "modulo" math nodes, which kind of fixed it, but made every texture in the negatives get flipped 180 degrees... which is also something I don't want. I don't have deep enough knowledge of nodes to fix specific things like this, any help is appreciated.