Prepend data to stream in C#
I agree with Heslacher, should be fairly easy to do with NAudio.

var output = new MemoryStream();
using (var reader = new Mp3FileReader(mp3File))
using (var writer = new WaveFileWriter(output, reader.WaveFormat))
{
    //read from reader, write to writer, like you would do with regular streams
    //header is appended automatically to output stream in WaveFileWriter constructor
}


You should also consider encapsulating your resource loading logic to separate class (or classes: one class per resource type). Handling textures and sound in single method looks messy. Single resposibility.

EDIT: If you have to stick to the library of your choosing, then you should just use single output stream.

var output = new MemoryStream();
using (var input = new MP3Sharp.MP3Stream(yourMp3FileStream))
using (var writer = new BinaryWriter(output, Encoding.UTF8, true))
{
    var headerSize = 44; //or w/e it is for RIFF, I might have forgotten
    output.Position = headerSize;
    input.CopyTo(output);
    output.Position = 0;
    //wtite your header
    writer.Write("RIFF".ToCharArray());
    ...
}


Also notice, that you can stack usings on top of each other without adding extra braces.