When a character spawns on a SpawnLocation that is below the Y position -400.5, the character will instead spawn at this minimum and will then have to fall the rest of the way down to the target SpawnLocation. FallenPartsDestroyHeight has no affect on this.
This is unexpected and undesirable behaviour. SpawnLocations should work anywhere developers place them.
If you’re having this issue, you can manually correct the player’s position after character load as follows (but only if you have access to the SpawnLocation in your code structure or from Player.RespawnLocation):
if spawnLocation.Position.Y < -400.5 then
humanoidRootPart.CFrame += Vector3.new(0, spawnLocation.Position.Y + 400.5, 0)
end