I finally got multisphere-multisphere collision detection working! Also response!
Next on the agenda: prevent rigid bodies from interpenetrating.
Mind out of the gutter, people.
The algorithm might consist of a two phase collision check, with the first pass a fairly quick comparison of three distances and the second pass a more detailed approach.
I'm thinking that each object could have a constant geometric radius that is equal to the distance between the object's origin and the vertex (of the same object) that is the furthest away from the origin.
The first pass checks for possible collisions between two objects by computing the sum of the radii between two objects. If the sum is greater than or equal to the distance between their 3D origins, the two objects are marked as having a possible collision and added to the second pass's list. The objects are also marked somehow so that the algorithm doesn't add them to the list multiple times, perhaps by adding a "collided with" member list to each object class. If the two objects have already been marked as colliding with each other, then that means they're already on the second pass's list.
The second pass then does the matrix calculations, and makes sure the volumes do not interpenetrate. If they do, then the algorithm calculates the geometric center of the union of the two object's volumes, as well as the overall displacement of the union. These will be later used by the physics engine to calculate the moment forces and moment torques that need to be applied to both colliding objects.
At least, that's whats off the top of my head right now.