I was actually wondering about this same question, but hadn't gotten around to asking it yet.
For my MapMaker program when I click on a map cell, I use:
1) Interact2D.reproject2D3D to convert mouse coordinates into camera coordinates
2) SimpleVector.matMul and SimpleVector.add to converted that to world coordinates
3) SimpleVector.calcSub and SimpleVector.normalize to calculate the direction
4) World.calcMinDistance to obtain the length
5) SimpleVector.add to obtain the 3D coordinates of what the mouse is over.
6) Division on x and z to convert that into the map-cell coordinates the mouse is over.
But this doesn't give an actual polygon, and would not work for anything more complex than a map. To obtain the polygon, I suppose I would stop after step #4, and instead use CollisionEvent.getTargets() and CollisionEvent.getPolygonIDs(). These should both return arrays with length=1, indicating the object and polygon that the mouse is over. The problem is, how to I know that a particular CollisionEvent was caused by my call to World.calcMinDistance and not something else (like another object colliding with the object in question or other calls to calcMinDistance elsewhere in the program)? It seems there should be a way to "flag" potential collision-causing methods to be able to link them with the CollisionEvent's they generate. Any ideas?