I found a work around, just to be clear, this is not a FIX but simply a work around for a trashed pointer. In LinkerLoad.cpp, the CreateImport() function, add this right after Import is defined.
if(Import.XObject && !Import.XObject->IsValidLowLevel())
{
Import.XObject = NULL;
}
More information about this, the XObject that always crashed seems to be a PlaceholderFunction for UserConstructionScript. Here is the log when things are working correctly
[2015.07.13-23.11.35:861][ 0]LogLinker: FLinkerLoad::CreateImport: [ObjectName=Function][Filename=../../../Combat/Content/Characters/NPCs/SnakeMen/SnakeWarrior/Snakeman_Warrior_01_BP.uasset][/Script/CoreUObject][Class][Function] 19
[2015.07.13-23.11.35:861][ 0]LogLinker: FLinkerLoad::CreateImport: [ObjectName=UserConstructionScript][Filename=../../../Combat/Content/Characters/NPCs/SnakeMen/SnakeWarrior/Snakeman_Warrior_01_BP.uasset][/Script/CoreUObject][Function][Function_486] 38
When I attempt to load a 2nd map, here is the log, where Import Index 38 has an invalid Import.XObject pointer, but once I reset it to NULL, everything load just fine.
[2015.07.13-23.13.11:268][749]LogLinker: FLinkerLoad::CreateImport: [ObjectName=Function][Filename=../../../Combat/Content/Characters/NPCs/SnakeMen/SnakeWarrior/Snakeman_Warrior_01_BP.uasset][/Script/CoreUObject][Class][Function] 19
[2015.07.13-23.13.11:268][749]LogUObjectArray:Warning: Invalid object index -572662307
[2015.07.13-23.13.23:979][749]LogLinker: FLinkerLoad::CreateImport: [ObjectName=UserConstructionScript][Filename=../../../Combat/Content/Characters/NPCs/SnakeMen/SnakeWarrior/Snakeman_Warrior_01_BP.uasset][/Script/CoreUObject][Function][Invalid] 38
The real fix should really be fixing the problem with dangling Import.XObject pointer.
Thanks
Wa