Loading UMaps and FBX assets from Pak File

Is this still a known issue? I can load a simple material with no materials but I can’t load fbx’s or umaps as these have internal dependencies on other assets. When you mount the pak file the target asset becomes available but the dependencies are not available for example /Engine/assetdepends. When you unmount the pak file the dependencies become available but the target asset cannot be found. So how are supposed to load these assets?

    FPakPlatformFile* UAssetTools::LoadPak(FString PakFileName) {

IPlatformFile& InnerPlatformFile = FPlatformFileManager::Get().GetPlatformFile();

FPakPlatformFile* PakPlatformFile = new FPakPlatformFile();

bool ret = PakPlatformFile->Initialize(&InnerPlatformFile, TEXT(""));
if (!ret) {
	return nullptr;
}

PakPlatformFile->InitializeNewAsyncIO(); //https://answers.unrealengine.com/questions/574388/how-to-mount-a-pak-file-at-game-content-directory.html

FPlatformFileManager::Get().SetPlatformFile(*PakPlatformFile);

const FString PakFilePath = PakFileName;

UE_LOG(LogTemp, Warning, TEXT("%s"), *PakFilePath);

FString MountPoint = FPaths::EngineContentDir() +TEXT("DLC/");

FPakFile PakFile(PakPlatformFile, *PakFilePath, false);
PakFile.SetMountPoint(*MountPoint);
if (PakFile.IsValid()) { 
	UE_LOG(LogTemp, Warning, TEXT("Valid pak file found"));
}
else {
	UE_LOG(LogTemp, Warning, TEXT("Invalid pak file found"));
}


if (!PakPlatformFile->Mount(*PakFilePath, 0, *MountPoint))
{
	return nullptr;
}
else {

	//FStreamableManager Streamable;
	// list of references
	TArray<FString> AssetsToLoad;

	TArray<FString> FileList;
	PakFile.FindFilesAtPath(FileList, *PakFile.GetMountPoint(), true, false, true);

	for (int i = 0; i < FileList.Num(); i++) {
		FString AssetName = FileList[i];
		FString AssetShortName = FPackageName::GetShortName(AssetName);
		FString LeftStr;
		FString RightStr;
		AssetShortName.Split(TEXT("."), &LeftStr, &RightStr);

		// check format is uasset
		//if (RightStr==TEXT("uasset")|| RightStr.Contains(TEXT("umap"))) {
		if (true) {
			AssetName = TEXT("/Engine/DLC/") + LeftStr + TEXT(".") + LeftStr;
			AssetsToLoad.Add(AssetName);
		}
		else {
			// todo error
		}
	}
	Dump visitor;
	PakPlatformFile->IterateDirectoryRecursively(*MountPoint, visitor);

	UE_LOG(LogTemp, Warning, TEXT("Register mount point here"));
	FPackageName::RegisterMountPoint("/Engine/DLC/", *MountPoint);//StandardFilename);

	FPakInfo info = PakFile.GetInfo();

	// load assets in pak
	for (int i = 0; i < AssetsToLoad.Num(); i++) {
		TAssetPtr<UObject> asset = TAssetPtr<UObject>(FStringAssetReference(AssetsToLoad[i]));
		asset.LoadSynchronous();
	}

	// unmount pak
	//PakPlatformFile->Unmount(*PakFilePath);
	// or restore the old platform file
	FPlatformFileManager::Get().SetPlatformFile(InnerPlatformFile);
	return NULL;
}

}