OK, I just got a chance to download the model and to play around with it. It does seem to be working fine for me, though I had to make a few tweaks to get the model to load. Considering the fact that you've said you're already seeing it draw part of the model, I imagine you've already made similar adjustments.
What I did to get it to load is this, though:
1. Got rid of the mipmaps. The model was set up to generate mipmaps, but the model content processor didn't want to do that because the images weren't a power of two. You could definitely make them a power of two and keep the mipmaps, but to just get it to display, I didn't care for the mipmaps and so disabling them was the easiest choice.
2. Switched my profile from Reach to HiDef. Again, this was because Reach required powers of two, while HiDef does not.
Considering you're seeing the model at all, you've probably already accounted for these two little bumps in the road.
Now here's the bottom line. The model worked fine for me, so as you suspected, it was probably some small problem with your code.
I'm including my code below. Half of the non-template code in there is to get it to spin in circles, so you'll see I've got what amounts to a spherical coordinate with my distance, theta angle, and phi angle. (Don't worry too much if you don't understand that. Your problem is probably down in the Draw method somewhere, so compare your current code against that.)
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
namespace WindowsGame3
{
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
private Model model;
private float theta = 0;
private float phi = 0;
private float distance = 5000;
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
}
protected override void Initialize()
{
base.Initialize();
}
protected override void LoadContent()
{
spriteBatch = new SpriteBatch(GraphicsDevice);
model = Content.Load<Model>("Preba");
}
protected override void UnloadContent()
{
}
protected override void Update(GameTime gameTime)
{
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
theta += 0.05f;
phi += 0.01f;
base.Update(gameTime);
}
private Vector3 SphericalToCartesian(float theta, float phi, float distance)
{
double x = distance * Math.Sin(phi) * Math.Cos(theta);
double y = distance * Math.Cos(phi);
double z = distance * Math.Sin(phi) * Math.Sin(theta);
return new Vector3((float)x, (float)y, (float)z);
}
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
foreach (ModelMesh mesh in model.Meshes)
{
foreach (ModelMeshPart part in mesh.MeshParts)
{
BasicEffect effect = (BasicEffect)part.Effect;
effect.World = Matrix.Identity;
effect.View = Matrix.CreateLookAt(SphericalToCartesian(theta, phi, distance), new Vector3(0, 0, 0), Vector3.UnitY);
effect.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45), 800f/480f, 1f, 8000f);
}
mesh.Draw();
}
base.Draw(gameTime);
}
}
}
If your code looks the same as this, or if you run this code and it still looks wrong, my next guess is that it might not be able to find all of the textures or process them all correctly. So the next thing I'd look at if this code doesn't work for you is to double-check that all six of your textures are in the same directory as the model and that you don't have any compiler warnings (or errors) when you build the full project from scratch. (Do like a Build > Rebuild All on the menu.)
Hope that helps…