What trips me up is that I iterate over the first two cols of the first row, then increment row but reset cols. Then row gets reset and cols adjusted.... it's just a very awkward traversal of the matrix.
Well, maybe it seems awkward, but it sounds like basically the right approach. Perhaps if you showed us the relevant code snippet that walks through the array this way, we could comment on whether the code
is awkward, given the intended method (which itself is not that bad).
I've used that sort of "hopping around" within a 2-D data space fairly often -- e.g. when laying out a grid of Tk widgets into related "quadrants"; doing modulo arithmetic and resetting indices from one quadrant to the next is an acceptable (and usually optimal) solution.
So if you think your code yucky, show it to us, so we can decide whether we agree with you.