OK, I got myself confused then, no need to set the bounds of a collection

Try this I have just given it a go and it loads the vertex data up (I believe), where in your pipeline processor are you calling the method?
First declare MeshVerts at the top of your class, same place we declared the BoundingBox list, like this:
List<List<Vector3>> MeshVerts;
Also declare the object to place in Tag, I have setup an object array to do this, 0 holds bounding box data, 1 is animation data (I will put the source up for this at some point) and 2 the new vertex position data:
object[] ModelData = new object[3];
So the method now looks like this:
private void GetAllVerticies(MeshContent mesh)
{
MeshVerts = new List<List<Vector3>>();
for (int g = 0; g < mesh.Geometry.Count; g++)
{
GeometryContent geometry = mesh.Geometry[g];
List<Vector3> temp = new List<Vector3>();
for (int ind = 0; ind < geometry.Indices.Count; ind++)
{
// Transforms all of my verticies to local space.
Vector3 position = Vector3.Transform(geometry.Vertices.Positions[geometry.Indices[ind]], mesh.AbsoluteTransform);
temp.Add(position);
}
MeshVerts.Add(temp);
}
}
At the moment, as I don't know where you are calling it from I have put this in the CheckNode like this:
if (o is MeshContent)
{
// Get VertData
GetAllVerticies((MeshContent)o);
... rest of method ...
And in my Process method I bind the data to my object array like this:
ModelData[0] = boxes;
ModelData[1] = animationdata;
ModelData[2] = MeshVerts;
basemodel.Tag = ModelData;
Now to get the MeshVerts data back when in the engine I am using this code:
if (myModel.Tag != null)
{
List<List<Vector3>> vertData = (List<List<Vector3>>)((object[])myModel.Tag)[2];
}
The VertData object looks like the screen shot provided for the skulloc.x model in debug.
Have not done any vertex collision yet so I will have a think about how to go about doing it.
[attachment deleted by admin]