diff --git a/system/btif/include/btif_config.h b/system/btif/include/btif_config.h
index 57a4f1e338df0dcd5fb826a656eeae4b8fb7a75c..0c5a244eeaa94ef39c7e03d8f4694c80b7d9ad5a 100644
--- a/system/btif/include/btif_config.h
+++ b/system/btif/include/btif_config.h
@@ -21,10 +21,9 @@
 #include <stdbool.h>
 #include <stddef.h>
 
-#include "bt_types.h"
-
 #include <list>
 #include <string>
+#include <vector>
 #include "osi/include/config.h"
 #include "types/ble_address_with_type.h"
 
diff --git a/system/hci/include/btsnoop.h b/system/hci/include/btsnoop.h
index 3b195f7149fe6bbba28d645d8ea374cc61e4adc2..cf005cb249608427e63e1d411e8865cf1b572f75 100644
--- a/system/hci/include/btsnoop.h
+++ b/system/hci/include/btsnoop.h
@@ -19,6 +19,7 @@
 #pragma once
 
 #include <stdbool.h>
+#include <cstdint>
 
 #include "bt_types.h"
 
diff --git a/system/hci/include/hci_packet_parser.h b/system/hci/include/hci_packet_parser.h
index bef7e207ac6ba20f211d7eca328f1e11487aa505..c37a83126a86020155bfe6bf4957b316b94bcfd3 100644
--- a/system/hci/include/hci_packet_parser.h
+++ b/system/hci/include/hci_packet_parser.h
@@ -25,6 +25,7 @@
 #include "btcore/include/version.h"
 #include "features.h"
 #include "osi/include/allocator.h"
+#include "types/raw_address.h"
 
 typedef struct {
   void (*parse_generic_command_complete)(BT_HDR* response);
diff --git a/system/hci/src/btsnoop_mem.cc b/system/hci/src/btsnoop_mem.cc
index 88debdca4fca1432f3805c4f86ccfc5b142e2547..274bed47a605bfbd38c781155e909850541ced13 100644
--- a/system/hci/src/btsnoop_mem.cc
+++ b/system/hci/src/btsnoop_mem.cc
@@ -21,6 +21,7 @@
 #include "check.h"
 #include "gd/common/init_flags.h"
 #include "hci/include/btsnoop_mem.h"
+#include "stack/include/bt_types.h"
 
 static btsnoop_data_cb data_callback = NULL;
 static activity_attribution_cb attribution_callback = NULL;
diff --git a/system/internal_include/bt_common.h b/system/internal_include/bt_common.h
index a15cb64dbd8f8d4252cb73959bd23c03742b9884..31de238de30ce50a45d70637d65f13dbd56b8357 100644
--- a/system/internal_include/bt_common.h
+++ b/system/internal_include/bt_common.h
@@ -19,6 +19,6 @@
 #pragma once
 
 #include "bt_target.h"
-#include "bt_types.h"
 #include "osi/include/allocator.h"
 #include "osi/include/compat.h"
+#include "stack/include/bt_types.h"
diff --git a/system/stack/smp/p_256_multprecision.h b/system/stack/smp/p_256_multprecision.h
index a98fe4dd1889944a20c0dad4c99a997bc2987069..c0f9636258a36b9f41934591f9dcf090131cf81e 100644
--- a/system/stack/smp/p_256_multprecision.h
+++ b/system/stack/smp/p_256_multprecision.h
@@ -22,7 +22,7 @@
  ******************************************************************************/
 #pragma once
 
-#include "bt_types.h"
+#include <cstdint>
 
 #define DWORD_BITS 32
 #define DWORD_BYTES 4
diff --git a/system/test/mock/mock_btif_config.h b/system/test/mock/mock_btif_config.h
index 642385504812c93ffdaf035acac6b7e634343533..6f615afdd10158d583220324eb6d5abc32c88ef2 100644
--- a/system/test/mock/mock_btif_config.h
+++ b/system/test/mock/mock_btif_config.h
@@ -34,6 +34,7 @@ extern std::map<std::string, int> mock_function_count_map;
 //       may need attention to prune the inclusion set.
 
 #include "btif/include/btif_config.h"
+#include "types/raw_address.h"
 
 // Mocked compile conditionals, if any
 #ifndef UNUSED_ATTR