If you divide each area into four, recursively, then its a quad-tree and its a fairly standard partitioning scheme (in 3D, you would need to partition in 3D so each node generally has 8 children: an oct-tree): http://en.wikipedia.org/wiki/Quadtree
I don't have time to read your approach right now, but I look forward to finding out how you solved the collision detection "problem" later :)
Comments
If you divide each area into four, recursively, then its a quad-tree and its a fairly standard partitioning scheme (in 3D, you would need to partition in 3D so each node generally has 8 children: an oct-tree): http://en.wikipedia.org/wiki/Quadtree
I don't have time to read your approach right now, but I look forward to finding out how you solved the collision detection "problem" later :)