mipmaps( loadMipmaps ) {

		const mipmaps = [];

		// initialize width & height for level 1
		let dataOffset = HEADER_LEN + this.bytesOfKeyValueData;
		let width = this.pixelWidth;
		let height = this.pixelHeight;
		const mipmapCount = loadMipmaps ? this.numberOfMipmapLevels : 1;

		for ( let level = 0; level < mipmapCount; level ++ ) {

			const imageSize = new Int32Array( this.arrayBuffer, dataOffset, 1 )[ 0 ]; // size per face, since not supporting array cubemaps
			dataOffset += 4; // size of the image + 4 for the imageSize field

			for ( let face = 0; face < this.numberOfFaces; face ++ ) {

				const byteArray = new Uint8Array( this.arrayBuffer, dataOffset, imageSize );

				mipmaps.push( { 'data': byteArray, 'width': width, 'height': height } );

				dataOffset += imageSize;
				dataOffset += 3 - ( ( imageSize + 3 ) % 4 ); // add padding for odd sized image

			}

			width = Math.max( 1.0, width * 0.5 );
			height = Math.max( 1.0, height * 0.5 );

		}

		return mipmaps;

	}
@private
@param {ArrayBuffer} arrayBuffer - contents of the KTX container file
@param {number} facesExpected - should be either 1 or 6, based whether a cube texture or or
@param {boolean} threeDExpected - provision for indicating that data should be a 3D texture, not implemented
@param {boolean} textureArrayExpected - provision for indicating that data should be a texture array, not implemented