Unwrap produces utter randomness even with marked seams, while smart UV project kinda works I'm making an aircraft model for a game, but I'm having trouble with Unwrap on subsurf'ed parts that have had boolean cuts applied to them. I meticulously plan out nice seams using the Mark Seam function:

But it seems like the Unwrap functionality just generates a random jumbled mess of vertices without any structure:

UV smart project does kinda make sense of the unwrap, but it puts extra seams where I don't want them:

I suspect there's either a bug in Unwrap somewhere, or what I'm doing is making no sense. When I hit "Unwrap" after UV smart project, it partly redoes the UV mapping of some vertices, but stops part way through, so the UV unwrap now looks like a hybrid of the UV smart project output and the random jumbled mess of Unwrap:

Might the booleans have somehow messed up my object? I noticed it does tend to product a whole bunch of redundant and doubled vertices, but I've tried to "Remove doubles" on this already: doesn't help. "Recalculate outside" for normals: doesn't help. "Apply scale &amp; rotation": doesn't help. Basically once I get an object into this state, nothing seems to help it anymore except to use UV smart project from this point forward and accept the imperfect UV mappings it products.
The issue is unclean geometry left from boolean - specifically this area:



There is very thin long face running alongside the wing's trailing edge that is causing the problems. Only the top surface of the wing does not unwrap correctly, if I select other parts separately, they unwrap individually fine, so the problem is localized to that area only.

If you clean up that geometry, the model will unwrap correctly. Unfortunately removing doubles or recalculating normals won't help, it looks like some nasty leftovers from ngons.