Sucka234:Oh wait is this reader only supposed to read things created by ContentTypeWriter?
Correct. The ContentTypeReader<>'s are used to read content from XNB files, which are created at compile-time using ContentTypeWriter<>'s.
In the content pipeline, you have an importer and the processor, which read and translate your data, respectively. The "output" type of the content processor, let's call it MyType, is written to the XNB file, using a class derived from ContentTypeWriter<MyType>. At run-time, a call to Content.Load<MyType>(...) internally finds your class derived from ContentTypeReader<MyType> (which was actually defined in the ContentTypeWriter<MyType> class and stored in the XNB file as a class/assembly name) and uses it to parse the internals of the XNB file. The XNB format itself is proprietary.