diff --git a/Kernel/Core/arch/amd64/target.json b/Kernel/Core/arch/amd64/target.json
index 516194c924d8d11d089437baee36f1e23ce47eaf..5a9fed70709a6700464935050ca64d1ef46020fd 100644
--- a/Kernel/Core/arch/amd64/target.json
+++ b/Kernel/Core/arch/amd64/target.json
@@ -6,6 +6,7 @@
 	"target-pointer-width": "64",
 	"target-word-size": "64",
 	"target-c-int-width": "32",
+	"features": "-mmx,-sse,+soft-float",
 	"os": "tifflin",
 	"arch": "x86_64",
 		"linker-flavor": "ld",
diff --git a/Kernel/Core/arch/mod.rs b/Kernel/Core/arch/mod.rs
index 7df266c7d1e19170d003f089c412c5a78669ea0d..f213b0a9069bdad10d7afe57940bda684607be9d 100644
--- a/Kernel/Core/arch/mod.rs
+++ b/Kernel/Core/arch/mod.rs
@@ -5,6 +5,7 @@
 
 #[macro_use]
 #[cfg_attr(arch="amd64", path="amd64/mod.rs")]
+#[cfg_attr(target_arch="x86_64", path="amd64/mod.rs")]
 #[cfg_attr(arch="armv7", path="armv7/mod.rs")]
 #[cfg_attr(arch="armv8", path="armv8/mod.rs")]
 #[cfg_attr(test, path="imp-test.rs")]
@@ -13,7 +14,7 @@
 pub mod imp;	// Needs to be pub for exports to be avaliable
 
 // If on x86/amd64, import ACPI
-#[cfg(arch="amd64")]
+#[cfg(any(arch="amd64", target_arch="x86_64"))]
 pub use self::imp::acpi;
 
 
diff --git a/Kernel/Core/main.rs b/Kernel/Core/main.rs
index e9fe6db3167181e3a365c829e7d21bd852ff75fd..ba50f221521105274d4d3f5cdaec17a9a5afc2c4 100644
--- a/Kernel/Core/main.rs
+++ b/Kernel/Core/main.rs
@@ -45,7 +45,7 @@ pub use arch::memory::PAGE_SIZE;
 #[doc(hidden)]
 #[macro_use] pub mod macros;
 #[doc(hidden)]
-#[macro_use] #[cfg(arch="amd64")] #[path="arch/amd64/mod-macros.rs"] pub mod arch_macros;
+#[macro_use] #[cfg(any(arch="amd64", target_arch="x86_64"))] #[path="arch/amd64/mod-macros.rs"] pub mod arch_macros;
 
 /// Kernel's version of 'std::prelude'
 pub mod prelude;
diff --git a/Kernel/Modules/virtio/devices/mod.rs b/Kernel/Modules/virtio/devices/mod.rs
index 6448f9585714c89b5537695f6dde785488aaa6c6..a347888e9c8cb78cd1cbebc5dacdeab0cff87fe6 100644
--- a/Kernel/Modules/virtio/devices/mod.rs
+++ b/Kernel/Modules/virtio/devices/mod.rs
@@ -22,7 +22,8 @@ pub fn new_boxed<T: Interface+Send+Sync+'static>(dev_id: u32, int: T) -> Box<dev
 		Box::new(NullDevice)
 		}
 	2 => Box::new( block::BlockDevice::new(int) ),	// 2 = Block device
-	16 => Box::new( video::VideoDevice::new(int) ),	// 16 = Graphics Adapter
+	// DISABLED: Changing video modes breaks stuff currently...
+	//16 => Box::new( video::VideoDevice::new(int) ),	// 16 = Graphics Adapter
 	dev @ _ => {
 		log_error!("VirtIO device has unknown device ID {:#x}", dev);
 		Box::new(NullDevice)
diff --git a/Kernel/main/main.rs b/Kernel/main/main.rs
index 9891f7098ecba95a033ddb5574300b0f20547e17..d3dc9a308e90a9443164888ac4d214ae0fa057e6 100644
--- a/Kernel/main/main.rs
+++ b/Kernel/main/main.rs
@@ -317,8 +317,8 @@ enum ArchValues {
 	ARMv7 = 3,
 	ARMv8 = 4,
 }
-#[cfg(arch="amd64")]	const ARCH: ArchValues = ArchValues::AMD64;
-#[cfg(arch="amd64")]	const LOAD_MAX: usize = 1 << 47;
+#[cfg(any(arch="amd64",target_arch="x86_64"))]	const ARCH: ArchValues = ArchValues::AMD64;
+#[cfg(any(arch="amd64",target_arch="x86_64"))]	const LOAD_MAX: usize = 1 << 47;
 #[cfg(arch="armv7")]	const ARCH: ArchValues = ArchValues::ARMv7;
 #[cfg(arch="armv7")]	const LOAD_MAX: usize = (1 << 31) - (4 << 20);	// Leave 4MB for the kernel to control within the user table
 #[cfg(arch="armv8")]	const ARCH: ArchValues = ArchValues::ARMv8;