diff --git a/Assets/Content/I18N/Interfaces Shared Data.asset b/Assets/Content/I18N/Interfaces Shared Data.asset
index b0a8de0255f1d948457d81e9e0530ece0b0d93a5..245fed34cac1539fc64fabd8924b6ec132f7876d 100644
--- a/Assets/Content/I18N/Interfaces Shared Data.asset
+++ b/Assets/Content/I18N/Interfaces Shared Data.asset
@@ -27,6 +27,18 @@ MonoBehaviour:
     m_Key: Start
     m_Metadata:
       m_Items: []
+  - m_Id: 12977956188418048
+    m_Key: Endless_Mode
+    m_Metadata:
+      m_Items: []
+  - m_Id: 12978069526900736
+    m_Key: Story_Mode
+    m_Metadata:
+      m_Items: []
+  - m_Id: 13032030749421568
+    m_Key: Mode_Select
+    m_Metadata:
+      m_Items: []
   m_Metadata:
     m_Items: []
   m_KeyGenerator:
diff --git a/Assets/Content/I18N/Interfaces_de.asset b/Assets/Content/I18N/Interfaces_de.asset
index 232ab7015d6213aab9aea2cbd4ca6942465d7c9c..6eae58f305c12697665ce5f8b7966e8b0f38def0 100644
--- a/Assets/Content/I18N/Interfaces_de.asset
+++ b/Assets/Content/I18N/Interfaces_de.asset
@@ -30,6 +30,18 @@ MonoBehaviour:
     m_Localized: Start
     m_Metadata:
       m_Items: []
+  - m_Id: 12977956188418048
+    m_Localized: Endlosmodus
+    m_Metadata:
+      m_Items: []
+  - m_Id: 12978069526900736
+    m_Localized: Kampagne
+    m_Metadata:
+      m_Items: []
+  - m_Id: 13032030749421568
+    m_Localized: Spielmodus
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds: []
diff --git a/Assets/Content/I18N/Interfaces_en.asset b/Assets/Content/I18N/Interfaces_en.asset
index 1baf52a7de1b30154dd69e65bcd80b538d27770b..2f2e316fb11ac94c57d5672743021668591266d2 100644
--- a/Assets/Content/I18N/Interfaces_en.asset
+++ b/Assets/Content/I18N/Interfaces_en.asset
@@ -30,6 +30,18 @@ MonoBehaviour:
     m_Localized: Start
     m_Metadata:
       m_Items: []
+  - m_Id: 12977956188418048
+    m_Localized: Endless Mode
+    m_Metadata:
+      m_Items: []
+  - m_Id: 12978069526900736
+    m_Localized: Story Mode
+    m_Metadata:
+      m_Items: []
+  - m_Id: 13032030749421568
+    m_Localized: Mode Select
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds: []
diff --git a/Assets/Content/Player/UI/USS_MainMenu.uss b/Assets/Content/Player/UI/USS_MainMenu.uss
index bd541e053ed828eb26cc1eb857c02fc3a32f2106..469772cba100544e89cdaf80ddf468b16606c87f 100644
--- a/Assets/Content/Player/UI/USS_MainMenu.uss
+++ b/Assets/Content/Player/UI/USS_MainMenu.uss
@@ -1,8 +1,44 @@
+.page-view {
+    margin-left: 0;
+    margin-right: 0;
+    margin-top: 0;
+    margin-bottom: 0;
+    padding-left: 20px;
+    padding-right: 20px;
+    padding-top: 20px;
+    padding-bottom: 20px;
+    flex-grow: 1;
+}
+
+.unity-label {
+    -unity-font-definition: url("project://database/Assets/Plugins/TextMesh%20Pro/Fonts/Honey%20Salt.otf?fileID=12800000&guid=89039fdffeb624645be4ae3f3e093f4a&type=3#Honey Salt");
+    color: rgb(245, 232, 215);
+    font-size: 40px;
+    white-space: pre-wrap;
+}
+
+.unity-label#Title {
+    flex-grow: 1;
+    flex-shrink: 1;
+    height: 25%;
+    font-size: 100px;
+    -unity-text-align: middle-center;
+}
+
+#Content {
+    flex-grow: 1;
+    height: 75%;
+}
+
+#Content .unity-label {
+    padding-bottom: 50px;
+}
+
 .unity-button {
     align-self: stretch;
     margin-left: 10%;
     margin-right: 10%;
-    margin-bottom: 5%;
+    margin-bottom: 2%;
     -unity-font-definition: url("project://database/Assets/Plugins/TextMesh%20Pro/Fonts/Honey%20Salt.otf?fileID=12800000&guid=89039fdffeb624645be4ae3f3e093f4a&type=3#Honey Salt");
     font-size: 58px;
     -unity-text-align: middle-center;
@@ -16,9 +52,14 @@
     background-color: rgba(0, 0, 0, 0);
     color: rgb(245, 232, 215);
     flex-grow: 1;
+    margin-top: 2%;
 }
 
 .unity-button:hover {
     color: rgb(255, 247, 13);
     -unity-background-image-tint-color: rgb(255, 247, 13);
 }
+
+.page-view > * {
+    flex-grow: 1;
+}
diff --git a/Assets/Content/Player/UI/UXML_MainMenu.uxml b/Assets/Content/Player/UI/UXML_MainMenu.uxml
index 8736277266ea2cf70f8ab2517d41560479eac2d3..c912eed296781bae3c721c97052f436f7de31b90 100644
--- a/Assets/Content/Player/UI/UXML_MainMenu.uxml
+++ b/Assets/Content/Player/UI/UXML_MainMenu.uxml
@@ -1,20 +1,50 @@
 <ui:UXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" noNamespaceSchemaLocation="../../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
     <Style src="project://database/Assets/Content/Player/UI/USS_MainMenu.uss?fileID=7433441132597879392&amp;guid=8fb5305fb619fcf459ff59dd9b1b9dc3&amp;type=3#USS_MainMenu" />
-    <ui:GroupBox style="align-content: center; justify-content: center; align-items: center; height: 100%;">
-        <ui:Button text="Button" selectable="true" display-tooltip-when-elided="false" triple-click-selects-line="false" double-click-selects-word="false">
-            <Bindings>
-                <UnityEngine.Localization.LocalizedString property="text" table="GUID:a3a3f09de9c22cd46b66f971b37eb38d" entry="Id(307161821184)" />
-            </Bindings>
-        </ui:Button>
-        <ui:Button text="Button" selectable="true" display-tooltip-when-elided="false" triple-click-selects-line="false" double-click-selects-word="false">
-            <Bindings>
-                <UnityEngine.Localization.LocalizedString property="text" table="GUID:a3a3f09de9c22cd46b66f971b37eb38d" entry="Id(212601237504)" />
-            </Bindings>
-        </ui:Button>
-        <ui:Button text="Button" selectable="true" double-click-selects-word="false" triple-click-selects-line="false" display-tooltip-when-elided="false">
-            <Bindings>
-                <UnityEngine.Localization.LocalizedString property="text" table="GUID:a3a3f09de9c22cd46b66f971b37eb38d" entry="Id(251964780544)" />
-            </Bindings>
-        </ui:Button>
-    </ui:GroupBox>
+    <Retropair.UXML.PageView>
+        <ui:VisualElement name="MainMenu" style="flex-grow: 1;">
+            <ui:Button text="Button" selectable="true" display-tooltip-when-elided="false" triple-click-selects-line="false" double-click-selects-word="false">
+                <Bindings>
+                    <UnityEngine.Localization.LocalizedString property="text" table="GUID:a3a3f09de9c22cd46b66f971b37eb38d" entry="Id(307161821184)" />
+                </Bindings>
+            </ui:Button>
+            <ui:Button text="Button" selectable="true" display-tooltip-when-elided="false" triple-click-selects-line="false" double-click-selects-word="false">
+                <Bindings>
+                    <UnityEngine.Localization.LocalizedString property="text" table="GUID:a3a3f09de9c22cd46b66f971b37eb38d" entry="Id(212601237504)" />
+                </Bindings>
+            </ui:Button>
+            <ui:Button text="Button" selectable="true" double-click-selects-word="false" triple-click-selects-line="false" display-tooltip-when-elided="false">
+                <Bindings>
+                    <UnityEngine.Localization.LocalizedString property="text" table="GUID:a3a3f09de9c22cd46b66f971b37eb38d" entry="Id(251964780544)" />
+                </Bindings>
+            </ui:Button>
+        </ui:VisualElement>
+        <ui:VisualElement name="ModeSelect">
+            <ui:Label text="Label" name="Title">
+                <Bindings>
+                    <UnityEngine.Localization.LocalizedString property="text" table="GUID:a3a3f09de9c22cd46b66f971b37eb38d" entry="Id(13032030749421568)" />
+                </Bindings>
+            </ui:Label>
+            <ui:Button text="Button" selectable="true" display-tooltip-when-elided="false" triple-click-selects-line="false" double-click-selects-word="false">
+                <Bindings>
+                    <UnityEngine.Localization.LocalizedString property="text" table="GUID:a3a3f09de9c22cd46b66f971b37eb38d" entry="Id(12978069526900736)" />
+                </Bindings>
+            </ui:Button>
+            <ui:Button text="Button" selectable="true" double-click-selects-word="false" triple-click-selects-line="false" display-tooltip-when-elided="false">
+                <Bindings>
+                    <UnityEngine.Localization.LocalizedString property="text" table="GUID:a3a3f09de9c22cd46b66f971b37eb38d" entry="Id(12977956188418048)" />
+                </Bindings>
+            </ui:Button>
+        </ui:VisualElement>
+        <ui:VisualElement name="Credits">
+            <ui:Label text="Label" name="Title">
+                <Bindings>
+                    <UnityEngine.Localization.LocalizedString property="text" table="GUID:a3a3f09de9c22cd46b66f971b37eb38d" entry="Id(212601237504)" />
+                </Bindings>
+            </ui:Label>
+            <ui:VisualElement name="Content" style="flex-grow: 1;">
+                <ui:Label text="Katharina Broswik - 3D/2D Art&#10;Daniel Schulz - Code, Tech Art, Game Design&#10;Gregor Sönnichsen - Code, Writing, Environment Art, Game Design" name="Team" />
+                <ui:Label text="- Key Icons by Xelu (CC0) (https://thoseawesomeguys.com/prompts/)&#10;- Fonts: Honey Salt by MJType - GSM Font by Grant Morrison (CC0)&#10;- Audio: Soothing Acoustic Guitar for Relaxation by LolaMoore; License: Attribution 4.0" name="Sources" />
+            </ui:VisualElement>
+        </ui:VisualElement>
+    </Retropair.UXML.PageView>
 </ui:UXML>
diff --git a/Assets/Scenes/SCENE_Test_MainMenu.unity b/Assets/Scenes/SCENE_Test_MainMenu.unity
index 6803682d43ef4f51627ac1796180ade96b137162..45a55269bae6885603707295bdc429f55845f36f 100644
--- a/Assets/Scenes/SCENE_Test_MainMenu.unity
+++ b/Assets/Scenes/SCENE_Test_MainMenu.unity
@@ -462,6 +462,103 @@ Transform:
   m_Children: []
   m_Father: {fileID: 0}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &1616361085
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    serializedVersion: 3
+    m_TransformParent: {fileID: 0}
+    m_Modifications:
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_Pivot.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_Pivot.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 459689281129199792, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8313691286079172056, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
+      propertyPath: m_Name
+      value: P_UI_Credits
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+    m_RemovedGameObjects: []
+    m_AddedGameObjects: []
+    m_AddedComponents: []
+  m_SourcePrefab: {fileID: 100100000, guid: 91ac975db61cbb24bb66369b574cae7c, type: 3}
 --- !u!1660057539 &9223372036854775807
 SceneRoots:
   m_ObjectHideFlags: 0
@@ -470,3 +567,4 @@ SceneRoots:
   - {fileID: 46734453}
   - {fileID: 525804824}
   - {fileID: 909611684}
+  - {fileID: 1616361085}
diff --git a/Assets/Scripts/Runtime/UXML/PageView.cs b/Assets/Scripts/Runtime/UXML/PageView.cs
new file mode 100644
index 0000000000000000000000000000000000000000..44888888be1a6e1cf9337b94339bacc4034effd3
--- /dev/null
+++ b/Assets/Scripts/Runtime/UXML/PageView.cs
@@ -0,0 +1,53 @@
+using UnityEngine;
+using UnityEngine.UIElements;
+
+namespace Retropair.UXML {
+    [UxmlElement]
+    sealed partial class PageView : VisualElement {
+        // Index of the active page
+        int _activeIndex = 0;
+        [Header("PageView")]
+        [UxmlAttribute("active-index")]
+        public int activeIndex {
+            get => _activeIndex;
+            set => SwitchToPage(value);
+        }
+
+        public PageView() {
+            AddToClassList("page-view");
+            RegisterCallback<AttachToPanelEvent>(OnAttachedToPanel);
+        }
+
+        /// <summary>
+        /// Shows the active page and hides the others via the page index.
+        /// </summary>
+        public void SwitchToPage(int index) {
+            if (index < 0 || index >= childCount) {
+                return;
+            }
+            _activeIndex = index;
+            for (int i = 0; i < childCount; i++) {
+                this[i].style.display = (i == index) ? DisplayStyle.Flex : DisplayStyle.None;
+            }
+        }
+
+        /// <summary>
+        /// Shows the active page and hides the others via the page name attribute.
+        /// </summary>
+        public void SwitchToPage(string name) {
+            var child = this.Q<VisualElement>(name);
+            if (child == null) {
+                return;
+            }
+            for (int i = 0; i < childCount; i++) {
+                this[i].style.display = (this[i] == child) ? DisplayStyle.Flex : DisplayStyle.None;
+            }
+            _activeIndex = IndexOf(child);
+        }
+
+        void OnAttachedToPanel(AttachToPanelEvent e) {
+            // Show only the active page on first attach
+            SwitchToPage(_activeIndex);
+        }
+    }
+}
diff --git a/Assets/Scripts/Runtime/UXML/PageView.cs.meta b/Assets/Scripts/Runtime/UXML/PageView.cs.meta
new file mode 100644
index 0000000000000000000000000000000000000000..95d73c8c51fa0ccc7790f8aa3f700064916d7a1c
--- /dev/null
+++ b/Assets/Scripts/Runtime/UXML/PageView.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: abe081fe16196fa48ada574b89789420
\ No newline at end of file
