Loading Screen Doesn't Load Properly?

I am making a Loading Screen and I have encountered 2 issues:

  1. The Loading Screen loads slower than it needs to
  2. The Loading Screen UI is not covering up the whole screen
local Players = game:GetService("Players")
local ReplicatedFirst = game:GetService('ReplicatedFirst')
local ContentProvider = game:GetService("ContentProvider")

local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local playerLoadingScreen = playerGui:WaitForChild("LoadingScreen")
local playerLoadingScreenHolder = playerLoadingScreen:WaitForChild("Holder") 
local playerLoadingText = playerLoadingScreenHolder:WaitForChild("LoadingText") 

local percentageComplete = 0

local gameAssets = game:GetDescendants()
local totalGameAssets = #gameAssets

ReplicatedFirst:RemoveDefaultLoadingScreen()

repeat task.wait() until game:IsLoaded()

playerLoadingScreen.Enabled = true

for assetsLoaded = 1, totalGameAssets, 1 do
	local asset = gameAssets[assetsLoaded]
	
	ContentProvider:PreloadAsync({asset})
	percentageComplete = (assetsLoaded / totalGameAssets) * 100
	playerLoadingText.Text = tostring(percentageComplete).. "%"
end

playerLoadingScreen.Enabled = false

The loading screen isn’t covering up the whole screen, the properties for the frame is 0.5, 0.5 anchorpoint
0.5, 0.5 position
1,0,1,0 scale

This is because by default the Roblox top bar will always show. To fix this and have your UI cover it, go to the properties of StarterGui and set the boolean value “IgnoreGuiInset” to true.