Extending my thought, something like this should work:
foreach ($settings as $key => $value)
{
$id = substr($key, -3);
if ($id === 'url')
{
$settings[$key] = str_replace('live_domain', 'test_domain', $value);
}
elseif ($id === 'dir')
{
$settings[$key] = str_replace('live_dir', 'test_dir', $value);
}
}
to add just after:
$settings = $themeData[0];
in Load.php.
The other directories... should work because even though are defined in Settings.php, they are checked in index.php and if wrong are fixed.
The only part left are attachments that may require some other adjustments.
Actually, something like this could even become part of a debugging component of sort. To consider.