                      :moar (-read-int conn))]
     (if (< 0 (:moar basepacket))
       basepacket
-      (-> basepacket
+      (assoc basepacket
         :unknownx (-read-int conn)
         :unknowny (-read-int conn)
         :unknownz (-read-int conn)))))
 
 (defn read-packet-mobspawn [conn]
-  (assoc
+  (assoc {}
     :eid (-read-int conn)
     :type (-read-byte conn)
     :x (-read-int conn)

    :datastream (-read-metadata conn)))

(defn read-packet-entitypainting [conn]
  (assoc
    :eid (-read-int conn)
    :type (-read-string16 conn)
    :x (-read-int conn)

    :pitch (-read-byte conn)))

(defn read-packet-entitystatus [conn]
  (assoc {}
    :eid (-read-int conn)
    :entitystatus (-read-byte conn)))

(defn read-packet-attachentity [conn]
  (assoc {}
    :eid (-read-int conn)
    :vehicleid (-read-int conn)))

(defn read-packet-entitymetadata [conn]
  (assoc {}
    :eid (-read-int conn)
    :metadata (-read-metadata conn)))

(defn read-packet-prechunk [conn]
  (assoc {}
    :x (-read-int conn)
    :z (-read-int conn)
    :mode (-read-bool conn)))

(defn read-packet-mapchunk [conn]
  (let [predata (assoc {}
                  :x (-read-int conn)
                  :y (-read-short conn)
                  :z (-read-int conn)
