MTLLoader not working correctly

I am trying to use the MTLLoader and I’m not sure why but it breaks the rest of my three.js code and the texture don’t load all the way and don’t look right. Everything works when I use the OBJLoader by itself. Specifically it messes up the camera so it doesn’t work. Any guidance would be appreciated. I am using the latest version of three.js that is offered from the three.js website.

here is the error code I get

three.js:24415 Uncaught TypeError: Cannot set property ‘value’ of undefined
at initMaterial (three.js:24415)
at setProgram (three.js:24493)
at WebGLRenderer.renderBufferDirect (three.js:23552)
at renderObject (three.js:24269)
at renderObjects (three.js:24239)
at WebGLRenderer.render (three.js:24037)
at render (demo2.html:516)

Here is my MTLLoader code

			 var mesh = null;
		 var mtlLoader = new THREE.MTLLoader();
		 mtlLoader.load( 'dapHouseGood5.mtl', function( materials ) {
		 materials.preload();

		 var objLoader = new THREE.OBJLoader();
		 objLoader.setMaterials( materials );
		 objLoader.load( 'dapHouseGood5.obj', function ( object ) {

	     mesh = object;
		 scene.add( mesh );	

		  });
		  }); 

here is the rest of my three.js code for reference

			<script>
				/* global THREE */	
			  
		function main() {					
		  const canvas = document.querySelector('#c');
		  const renderer = new THREE.WebGLRenderer({canvas});
		  const renderer2 = new THREE.WebGLRenderer({canvas});				
			var kitchenCameraActive = false;			
			document.getElementById("roomSelect").addEventListener("change", changeIt);					
		function changeIt(e) {
			//e.target.value
			document.getElementById(e.target.value).click();
			console.log(e);
		}							
		  var fov = 45;
		  var aspect = 2;  // the canvas default
		  var near = 0.1;
		  var far = 100;
		  var camera = new THREE.PerspectiveCamera(fov, aspect, near, far);
		  camera.position.set(-97.570, 5.878, -5.289);
		  camera.rotation.set(0,0,0);
			
		  const controls = new THREE.OrbitControls(camera, canvas);
		  controls.target.set(0, 5, 0);
		  controls.update();
			
		  document.getElementById("kitchen").addEventListener("click", changeCamera);		  
		  document.getElementById("bathroom").addEventListener("click", changeCamera);		  
		  document.getElementById("deck").addEventListener("click", changeCamera);		  
		  document.getElementById("livingRoom").addEventListener("click", changeCamera);		
		  document.getElementById("bedRoom").addEventListener("click", changeCamera);
		  document.getElementById("walkway").addEventListener("click", changeCamera);
		  document.getElementById("sideHouse").addEventListener("click", changeCamera);
		  document.getElementById("frontPorch").addEventListener("click", changeCamera);
		  document.getElementById("garageDoor").addEventListener("click", changeCamera);
		  document.getElementById("insideGarage").addEventListener("click", changeCamera);
			  
		function changeCamera(e) {

			camera.rotation.set(e.toElement.attributes[5].nodeValue, e.toElement.attributes[6].nodeValue, e.toElement.attributes[7].nodeValue);				
			camera.fov = e.toElement.attributes[4].nodeValue;
			camera.position.set(e.toElement.attributes[1].nodeValue, e.toElement.attributes[2].nodeValue, e.toElement.attributes[3].nodeValue);		
			camera.updateProjectionMatrix();
		
			if (e.target.id == "walkway" || e.target.id == "frontPorch" || e.target.id == "garageDoor" || e.target.id == "insideGarage")
				{
					controls.target.set(0, 5, 0);
					controls.update();
				}				
			if(e.target.id == "kitchen"){
			controls.target.set(7, 6, 7);
			}
			if(e.target.id == "bathroom"){
			controls.target.set(-9,15,-7);
			}
			if(e.target.id == "deck"){
			controls.target.set(31, 7, 1);
			}
			if(e.target.id == "livingRoom"){
			controls.target.set(-12.5, 1.5, -18.5);
			}
			if(e.target.id == "bedRoom"){
			controls.target.set(-15.7, 14, -21);
			}
			if(e.target.id == "insideGarage"){
			controls.target.set(24.405, 6.733, -6.425);
			}

			controls.update();	
			console.log(e);
		}

		  const scene = new THREE.Scene();
		  scene.background = new THREE.Color('black');
		  {
			const planeSize = 40;
		  }

		  {
			const skyColor = 0xB1E1FF;  // light blue
			const groundColor = 0xB97A20;  // brownish orange
			const intensity = 1;
			const light = new THREE.HemisphereLight(skyColor, groundColor, intensity);
			scene.add(light);
		  }

		  {
			const color = 0xFFFFFF;
			const intensity = 1;
			const light = new THREE.DirectionalLight(color, intensity);
			light.position.set(5, 10, 2);
			scene.add(light);
			scene.add(light.target);
		  }
			  


		 var mesh = null;
		 var mtlLoader = new THREE.MTLLoader();
		 mtlLoader.load( 'dapHouseGood5.mtl', function( materials ) {
		 materials.preload();

		 var objLoader = new THREE.OBJLoader();
		 objLoader.setMaterials( materials );
		 objLoader.load( 'dapHouseGood5.obj', function ( object ) {

	     mesh = object;
		 scene.add( mesh );	

		  });
		  }); 
		
		  function resizeRendererToDisplaySize(renderer) {
			const canvas = renderer.domElement;
			const width = canvas.clientWidth;
			const height = canvas.clientHeight;
			const needResize = canvas.width !== width || canvas.height !== height;
			if (needResize) {
			  renderer.setSize(width, height, false);
			}
			return needResize;
		  }

		  function render() {
			if (resizeRendererToDisplaySize(renderer)) {
			  const canvas = renderer.domElement;
			  camera.aspect = canvas.clientWidth / canvas.clientHeight;
			  camera.updateProjectionMatrix();
			}
					  
			renderer.render(scene, camera);
			requestAnimationFrame(render);
		  }

		  requestAnimationFrame(render);
		
			function onPositionChange(o) {
			console.log("position changed in object");
			console.log(o);
			console.log('camera_default: '+camera.position.x+', '+camera.position.y+', '+camera.position.z);
			console.log('camera_default: '+camera.rotation.x+', '+camera.rotation.y+', '+camera.rotation.z);
			console.log(camera.fov);
				console.log('quaternion_default: '+camera.quaternion.x+', '+
				camera.quaternion.y+', '+camera.quaternion.z+', '+camera.quaternion.w);
			}

			controls.addEventListener('change', onPositionChange);
			
		var mouse = new THREE.Vector2();
		var raycaster, mouse = { x : 0, y : 0};

		init();

		function init () {
			//Usual setup code here.
			raycaster = new THREE.Raycaster();
			renderer.domElement.addEventListener( 'click', raycast, false );
		}

		function raycast ( e ) {
			//1. sets the mouse position with a coordinate system where the center
			//   of the screen is the origin
			mouse.x = ( e.clientX / window.innerWidth ) * 2 - 1;
			mouse.y = - ( e.clientY / window.innerHeight ) * 2 + 1;

			//2. set the picking ray from the camera position and mouse coordinates
			raycaster.setFromCamera( mouse, camera );
			//var mouse3D = new THREE.Vector3( ( event.clientX / window.innerWidth ) * 2 - 1,   -( event.clientY / window.innerHeight ) * 2 + 1, 0.5 );
			//raycaster.setFromCamera( mouse3D, camera );		

			//3. compute intersections
			var intersects = raycaster.intersectObjects( scene.children, true );

			for ( var i = 0; i < intersects.length; i++ ) {
				console.log( intersects[ i ].object.name );
			}
		}				
		}
		main();
			</script>