diff --git a/LEGO1/mxmusicpresenter.cpp b/LEGO1/mxmusicpresenter.cpp
index 72ae273a..45a56679 100644
--- a/LEGO1/mxmusicpresenter.cpp
+++ b/LEGO1/mxmusicpresenter.cpp
@@ -1,5 +1,11 @@
 #include "mxmusicpresenter.h"
 
+#include "decomp.h"
+#include "mxmusicmanager.h"
+#include "mxomni.h"
+
+DECOMP_SIZE_ASSERT(MxMusicPresenter, 0x54);
+
 // OFFSET: LEGO1 0x100c22c0
 MxMusicPresenter::MxMusicPresenter()
 {
@@ -21,4 +27,22 @@ void MxMusicPresenter::Init()
 void MxMusicPresenter::Destroy(MxBool)
 {
   // TODO
-}
\ No newline at end of file
+}
+
+// OFFSET: LEGO1 0x100c25a0
+MxResult MxMusicPresenter::AddToMusicManager()
+{
+  MxResult result = FAILURE;
+  if (MusicManager()) {
+    result = SUCCESS;
+    MusicManager()->AddPresenter(*this);
+  }
+  return result;
+} 
+
+// OFFSET: LEGO1 0x100c25d0
+void MxMusicPresenter::vtable38()
+{
+  // TODO: Name this function when we know what the argument to Destroy does
+  Destroy(FALSE);
+}
diff --git a/LEGO1/mxmusicpresenter.h b/LEGO1/mxmusicpresenter.h
index a000c2b9..2e55aa6c 100644
--- a/LEGO1/mxmusicpresenter.h
+++ b/LEGO1/mxmusicpresenter.h
@@ -4,6 +4,7 @@
 #include "mxaudiopresenter.h"
 
 // VTABLE 0x100dc9b8
+// SIZE 0x54
 class MxMusicPresenter : public MxAudioPresenter
 {
 public:
@@ -23,6 +24,9 @@ public:
   MxMusicPresenter();
   virtual ~MxMusicPresenter() override;
 
+  virtual MxResult AddToMusicManager(); // vtable+0x34
+  virtual void vtable38(); // vtable+0x38
+
 private:
   void Init();
   void Destroy(MxBool);