Hmm looks like the lowest index in the array is actually always zero

Looks like heuristically detecting the end of the collision data is the only way to get the real start of it. Heuristically detecting the end of the screens array seems to work ok so far though.