Isn't spatial hashing most suited to colliding objects of similar sizes, and with similar dimensions in each axis? (So you can match the grid size accordingly)
If you've got a mix of very different sizes and shapes, I think sweep and prune can be a better choice